#设置工作路径
work_dir=/media/gm/NewVolume/CCNPIBP2
CCS_DIR=${work_dir}/ccs


SUBJECTS_DIR=${work_dir}/SUBJECTS
sub_list=${CCS_DIR}/subs.list
LOG_FILE=${CCS_DIR}/conversion_pre.log

# 检查并生成 SUBJECTS_DIR目录
if [ ! -d "$SUBJECTS_DIR" ]; then
    mkdir -p "$SUBJECTS_DIR"
    echo "SUBJECTS_DIR文件夹不存在，已创建：$SUBJECTS_DIR"
fi

# 检查并创建日志目录
mkdir -p "$(dirname "$LOG_FILE")"

# 检查被试列表文件是否存在，如果不存在则生成
if [ ! -f "$sub_list" ]; then
    # 生成 subs.list 文件，仅包含 ccs目录下的一级子目录名称
    find "$CCS_DIR" -mindepth 1 -maxdepth 1 -type d -exec basename {} \; > "$sub_list"
    echo "已生成被试列表文件：$sub_list"
fi

# 记录日志，保存到日志文件
exec > >(tee -a "$LOG_FILE") 2>&1

# 读取被试列表到数组，过滤掉空行和注释行
mapfile -t subjects < <(grep -vE '^\s*#|^\s*$' "$sub_list")

#执行循环
for subj in "${subjects[@]}"
do
	subject=${subj}
	subject_path="${SUBJECTS_DIR}/${subject}"
	if [ -d "$subject_path" ]; then
        # 如果存在同名文件夹，跳过该 subject
        echo "文件夹 ${subject_path} 已存在，跳过该 subject。"
        continue
    else
    # 如果不存在同名文件夹，执行 
	$CCS_APP/ccs_anat_02_freesurfer.sh $CCS_DIR $SUBJECTS_DIR $subject
	if [ $? -ne 0 ]; then
        echo "被试${subject}皮层重建流水线发生错误"
    else
        echo "被试${subject}皮层重建流水线已完成"
    fi
    fi
done
